gpt4 book ai didi

javascript - AngularJS 和 Q.fcall

转载 作者:行者123 更新时间:2023-11-29 16:13:19 24 4
gpt4 key购买 nike

Angulars $q 是受 Kris Kowal 的 Q 启发的 promise/deferred 实现。

在 Q 中,您创建了一个 promise

var myPromise = Q.fcall(myFunction);

这里 myFunction 将被异步调用,一个 promise 被放置在 myPromise 变量中,代码继续执行。

only example Angular 为创建 promise 提供了使用 javascript timeout 函数,与上面的 Q 示例相比,这对我来说似乎是一个冗长的 hack。所以在 Angular 中我会写

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

setTimeout(function() {
scope.$apply(function() {
deferred.resolve(myFunction);
});
}, 1000);

return deferred.promise;
}

上面的内容与顶部的一行相同。

我希望 $q.fcall 会起作用,但我得到:

TypeError: 'undefined' is not a function (evaluating '$q.fcall(function() { return 'a'; })')

那么在 AngularJS 中异步调用函数并返回 promise 的最直接的方法是什么?

最佳答案

你在找这样的东西吗

function doWorkAsync() {
var defer = $q.defer();
//do some work async and on a callback
asyncWork(function(data)) {
defer.resolve(data);
}
return defer.promise;
}

现在调用这个函数

doWorkAsync().then(function(data));

angularJS 库函数的数量已经在调用时返回了 promise 。比如$timeout$http$resource

关于javascript - AngularJS 和 Q.fcall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21951450/

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