gpt4 book ai didi

javascript - JS 中处理回调的策略

转载 作者:行者123 更新时间:2023-11-28 01:23:53 26 4
gpt4 key购买 nike

这是一个菜鸟 JS 问题,我无法很好地用语言表达出来,无法成功谷歌。

function getUser(username){
var toReturn = { };
Restangular.one('users', username).get().then(function(result){
toReturn = result;
});
return toReturn //doesn't work
}

Restangular.one(...).get()初始化 REST 调用以从服务器获取用户数据。 .then(...)是返回数据后运行的回调。然而,这个getUser()正如所写的,函数总是返回一个空对象,因为它在触发回调之前返回。我该如何编写这个函数才能返回检索到的对象?

(p.s.我知道这个问题在 Angular 方面是学术性的,因为它透明地处理 promise 解析。总的来说,我对 JS 很陌生,这是一个一般的 JS 问题)。

最佳答案

由于服务器调用是异步的,因此您应该提供回调。

您可以使用promisecallback

使用回调

 function getUser(username, callback){

Restangular.one('users', username).get().then(function(result){
callback(result);
});
}

call: getUser('用户名', function(result){/*在这里做一些事情 */});

使用 Promise

 function getUser(username){
var callback;
var promise = {then: function(cb){
callback = cb;
}
};
Restangular.one('users', username).get().then(function(result){
callback(result);
});
return promise;
}

调用:getUser('用户名').then(function(result){/*在这里做一些事情*/});)

关于javascript - JS 中处理回调的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22955722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com