想象一下我们只需几个步骤来处理数据。首先我们下载它,然后我们做其他事情等等很多次。 C# 代码看起来像是几行 - 每个步骤一行。
据我现在了解,在 JS/Angular 中它看起来像这样:
function prepateAndGo() {
loadData()
.$promise.then((loadedData) => {
prepareData(loadedData).$promise().then((preparedData) => {
preprocessData(preparedData).$promise().then((preprocessedData) => {
andDoSmthElse(preprocessedData).$promise().then((andDoSmthElseData) => {
makeupData(andDoSmthElseData).$promise().then((makeupedData) => {
Console.log('finally, everything is loaded and processed, lets go');
});
});
});
});
});
}
还有更漂亮的图案吗?对付意大利面条的常见解决方案是什么?
最佳答案
您需要做的是创建返回 promise 的实用函数。例如:
function prepareData(data){
// do something with data and return a promise
return $q.when(data);
}
然后你就可以很好地链接这些 promise 。例如:
loadData()
.then(prepareData)
.then(preprocessData)
.then(andDoSmthElse)
.then(makeupData)
.then(function(madeData){
Console.log('finally, everything is loaded and processed, lets go');
});
注意:代码不在我的脑海中,但应该可以帮助您入门
关于javascript - 处理数据的多个步骤,JS/Angular 有什么好的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638227/