gpt4 book ai didi

javascript - 如何使用 $q 返回一个 http 请求异步的值(使用 typescript)

转载 作者:行者123 更新时间:2023-11-30 10:14:23 25 4
gpt4 key购买 nike

我一直在尝试设置一个简单的 promise 异步结构来返回从 http 请求返回的 json 对象,但我找不到任何好的示例。我确信我做错了一些可怕的事情,但我不能全神贯注。

这是我正在尝试的:

getjsonObjAsync(): any {
var deferred: ng.IDeferred<any> = this.$q.defer();
$.ajax({
url: AppSettings.jsonObjUrl,
type: 'get',
})
.then((result) => {
deferred.resolve(result);
})
return deferred.promise;
}

当我调用这个方法时,它返回

Object {then: function, catch: function, finally: function}
catch: function (callback) {
finally: function (callback) {
then: function (callback, errback, progressback) {
__proto__: Object

但我希望它返回我从 http 请求中获得的 json 对象,如果我在这里添加一个 console.log(result) 我可以看到:

    })
.then((result) => {
console.log(result)
deferred.resolve(result);
})

似乎我错误地使用了 $q 系统,但我想不出返回 json 对象的正确方法。

我试着按照这里的例子: https://stackoverflow.com/a/23572025/3757782但它仍然无法从请求中返回 json 对象

谢谢!

最佳答案

因为你要返回一个 promisereturn deferred.promise 你需要在另一端使用 promise 即:

getjsonObjAsync().then((result)=>{
console.log(result);
});

附注:$http(和$http.get)优于$.ajax

关于javascript - 如何使用 $q 返回一个 http 请求异步的值(使用 typescript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24693589/

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