gpt4 book ai didi

javascript - 在对 api 的 $http 请求成功后,Angular $q 库将方法链接起来?

转载 作者:行者123 更新时间:2023-11-29 16:08:42 25 4
gpt4 key购买 nike

我以前从未写过 promise ,但我觉得这段代码表达了我的意图。

问题:在我的 http 请求完成、转换并返回后,如何在 init block 中异步触发 matchData()countData()

 function getLangData(langCode) {

var url = "https://translate.google.com/translate_a/l?cb=JSON_CALLBACK";
return $q(function(resolve, reject) {
$http.jsonp(url, {
params: {...}
})
.success(function (translateAPIData) {
return translateAPIData.map(function(){...});
});
});

});
}

function init() {
var promise = getLangData(languageCode);
promise.then(function(mappedData) {
matchData(mappedData);
});
promise.then(function(mappedData) {
countData(mappedData);
});

});
}

最佳答案

您不需要使用 $q 创建您自己的 promise ,因为 $http 方法默认返回一个 promise ,您可以通过调用 .then 方法来利用它在上面。

function getLangData(langCode) {

var url = "https://translate.google.com/translate_a/l?cb=JSON_CALLBACK";
//returned promise object from method
return $http.jsonp(url, {
params: {...}
})
.then(function (response) {
var translateAPIData = response.data;
return translateAPIData.map(function(){...});
});
}

代码

您可以通过在该方法上执行 .then 来调用 promise 方法。

function init() {
var promise = getLangData(languageCode);
promise.then(function(mappedData) {
matchData(mappedData);
countData(mappedData);
});
};

关于javascript - 在对 api 的 $http 请求成功后,Angular $q 库将方法链接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34320623/

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