gpt4 book ai didi

angularjs - $q.defer() 到底做了什么?

转载 作者:行者123 更新时间:2023-12-03 14:51:10 24 4
gpt4 key购买 nike

我正在学习 Angular JS,目前我正在尝试了解 Promise 和异步编程,但我对 $q.defer() 有疑问。 .我的观点如下:通常当人们使用 Promise 时,他们会做类似的事情,考虑到 $q 已经可用

function someAsyncFunction() {
var deferred = $q.defer();

/* Do things and if everything goes fine return deferred.resolve(result)
otherwise returns deferred.reject()
*/

return deferred.promise;
}

这到底是在做什么?当我们做 var deferred = $q.defer()它立即将该函数的所有执行切换到另一个线程,并返回对仍在那里执行的该操作结果的引用的 promise ?

这是我们在创建异步方法时应该考虑的方式吗?

最佳答案

使用 $q u 异步运行函数。
延迟对象表示某事、某项任务已完成。
var defer = $q.defer(); // we create deferred object, which will finish later.

defer.promise // we get access to result of the deferred task

.then( // .then() calls success or error callback
function(param) {
alert("i something promised " + param);
return "something";
}); // u can use 1 or more .then calls in row

defer.resolve("call"); //returns promise

这里的例子:
http://jsfiddle.net/nalyvajko/HB7LU/29048/

关于angularjs - $q.defer() 到底做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22121472/

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