Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何链我的承诺-获取不返回期望的结果 这些承诺对我不起作用_Javascript_Asynchronous - Fatal编程技术网

Javascript 如何链我的承诺-获取不返回期望的结果 这些承诺对我不起作用

Javascript 如何链我的承诺-获取不返回期望的结果 这些承诺对我不起作用,javascript,asynchronous,Javascript,Asynchronous,说到使用Javascript,我是个新手。在我目前的项目中,我相信承诺是我试图实现的任务的候选。这个项目很简单,它是一个向客户提交报价(或估价)的在线表单 我正在处理的页面将显示已提交的报价-(view-Quote.html) 以下是任务分解: 给定quote_id(url参数),我想查询QUOTES表 在这些结果中有一个客户id 最后,我想使用quote_id查询ITEMS表 同步还是异步? 由于一个查询依赖于另一个查询,我想我可以使用Fetch语句,它是“then-able” 我想我应该

说到使用Javascript,我是个新手。在我目前的项目中,我相信承诺是我试图实现的任务的候选。这个项目很简单,它是一个向客户提交报价(或估价)的在线表单

我正在处理的页面将显示已提交的报价-(view-Quote.html)

以下是任务分解:

  • 给定quote_id(url参数),我想查询QUOTES表
  • 在这些结果中有一个客户id
  • 最后,我想使用quote_id查询ITEMS表
同步还是异步? 由于一个查询依赖于另一个查询,我想我可以使用Fetch语句,它是“then-able”

我想我应该使用异步代码来完成这个任务,对吗?不过我不确定。也许我需要的是传统的“回调”

我当前的非工作代码。。。 这是我能到的最远的地方。我在Stack的网站上找到了一些技巧和教程,将它们拼凑在一起

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);
    });
};