Javascript 如何链我的承诺-获取不返回期望的结果 这些承诺对我不起作用
说到使用Javascript,我是个新手。在我目前的项目中,我相信承诺是我试图实现的任务的候选。这个项目很简单,它是一个向客户提交报价(或估价)的在线表单 我正在处理的页面将显示已提交的报价-(view-Quote.html) 以下是任务分解:Javascript 如何链我的承诺-获取不返回期望的结果 这些承诺对我不起作用,javascript,asynchronous,Javascript,Asynchronous,说到使用Javascript,我是个新手。在我目前的项目中,我相信承诺是我试图实现的任务的候选。这个项目很简单,它是一个向客户提交报价(或估价)的在线表单 我正在处理的页面将显示已提交的报价-(view-Quote.html) 以下是任务分解: 给定quote_id(url参数),我想查询QUOTES表 在这些结果中有一个客户id 最后,我想使用quote_id查询ITEMS表 同步还是异步? 由于一个查询依赖于另一个查询,我想我可以使用Fetch语句,它是“then-able” 我想我应该
- 给定quote_id(url参数),我想查询QUOTES表
- 在这些结果中有一个客户id
- 最后,我想使用quote_id查询ITEMS表
var getQuote=function(){
fetch(apiQuoteUrl+“GL555”)//为了测试,我硬编码了一个quote num
.然后(状态)
.then(json)
.then(功能(数据){
//工作-这会返回客户机id
//警报(数据[0]。客户端id);
gClient\u id=data[0]。客户端\u id;//移动到全局变量
}).catch(函数(错误){
日志('请求失败',错误);
});
};
//此函数接受一个参数,即客户端id
//它来自上面的fetch调用。
var getClient=函数(clientId){
fetch()
.然后(状态)
.then(json)
.then(功能(数据){
//待定,不确定
//在这里放什么
}).catch(函数(错误){
日志('请求失败',错误);
});
};
var getItems=function(){
fetch()
.然后(状态)
.then(json)
.then(功能(数据){
//待定,不确定
//在这里放什么
}).catch(函数(错误){
日志('请求失败',错误);
});
};
功能状态(响应){
如果(response.status>=200&&response.status<300){
返回承诺。解决(响应)
}否则{
返回承诺.拒绝(新错误(response.statusText))
}
}
函数json(响应){
返回response.json()
}
下一步怎么办?
好的,我已经准备好了框架。但是,我不知道该怎么办。我已经学习了很多关于Fetch和Promissions的教程,但是它们不太适合我的需要,所以我还是被卡住了
对吗?
因此,我现在担心的是,我正在使这件事变得更加困难。我使用承诺的方式是否正确
谢谢你的关注。非常感谢您的建议/代码帮助
约翰
他们也不是为我工作
你好!!我相信我最近也遇到了和你一样的问题:“束缚承诺”
一个快速的搜索带来了我,我能够解决我的问题
最基本的是,您需要从承诺中返回一个值,以便。然后()
因此,在使用fetch()
的情况下,请尝试以下方法
var getQuote = function() {
fetch(apiQuoteUrl + "GL555")
.then(status => return status.json())
.then(data => {
alert(data[0].client_id);
gClient_id = data[0].client_id;
}).catch(error => {
console.log('Request failed', error);
});
};
他们也不是为我工作
你好!!我相信我最近也遇到了和你一样的问题:“束缚承诺”
一个快速的搜索带来了我,我能够解决我的问题
最基本的是,您需要从承诺中返回一个值,以便。然后()
因此,在使用fetch()
的情况下,请尝试以下方法
var getQuote = function() {
fetch(apiQuoteUrl + "GL555")
.then(status => return status.json())
.then(data => {
alert(data[0].client_id);
gClient_id = data[0].client_id;
}).catch(error => {
console.log('Request failed', error);
});
};