javascript - 使用await关键字来模拟同步编程

标签 javascript asynchronous

这就是我进行 ajax 调用的方式:

$(document).on('click','#doit',clicked)
clicked = function() {
  var local = {}
  local.type = 'post'
  local.dataType = 'json'
  local.data = {}
  local.data.myid = 1234
  var promise = $.ajax('myPage.cfm',local)
  promise.done(done)
  promise.fail(fail)

  function done(response) {
  }

  function fail(xhr,status,response) {
    $('body').html(xhr.responseText)
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

在此示例中,donefail 是回调。 但我读到this article一个名为await 的新关键字。

问:我没读错吗?我不再需要引用回调和 promise ?我可以像以前那样直接编写同步代码吗?如何使用await关键字重写上面的示例?

最佳答案

init()
async function init() {
	var form = {}
	form.type = 'post'
	form.dataType = 'json'
	form.data = {}
	form.data.myid = 1234
	try {
		var ok=true
		var promise = await $.ajax('myPage.cfm',form)
	} catch(xhr) {
		console.log(xhr.responseText)
		ok=false
	}
	if (ok) {
		console.log(promise)
	}
}

关于javascript - 使用await关键字来模拟同步编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43527655/

相关文章:

c# - 我是否需要重写我的异步方法/类来实现我想要的功能?

javascript - jqGrid - 绑定(bind)键更改箭头和 Tab 键行为

JavaScript 添加事件监听器 : 'input' versus 'keyup'

javascript - 当点击按钮时,背景颜色改变

javascript - Jquery 使用动态值验证 Max 方法?

c# - SL4 AsyncEventArgs 在第二个 Socket 连接后抛出 InvalidOperationException

javascript - 尝试使用 Javascript/jQuery 访问某些输入标签值

c# - 在 LINQ 中并行加载图像

java - 在java中编写异步调用序列的更好方法是什么?

javascript - Async/Await JS Catch 在 try/catch 中不起作用