私は3つの関数を持っており、クリックするごとに1つずつ実行しようとしています。より良いそれを行うとJS関数のシーケンス約束の方法
キャッチされない
TypeError
のようなエラーを取得するために停止する方法:undefined
のプロパティthen
を読み取ることができませんか?あなたは(すなわち、最終()
を省略し、あなたの関数の各々からの約束(jQueryの中のDeferred)を返し、ハンドラではなく、その関数を呼び出した結果として、各.then
に関数を渡す必要があり
function msgRequest() {
$.post('/admin/notify/messages', {"_token": "{{ csrf_token() }}"}, function (messages) {
})
}
function readAll() {
$.each(messages, function (index, message) {
$.post('/admin/notify/read', {notify_id : message.id,"_token": "{{ csrf_token() }}"} ,function (data) {
});
});
}
function getUnread() {
$.post('/admin/notify/unread', {"_token": "{{ csrf_token() }}"} ,function (unread) {
$('#unread').text(unread);
});
}
$('#readall').click(function() {
msgRequest().then(readAll()).then(getUnread())
});
非常に間違っています。 'msgRequest'が何も返さないので、あなたが得ているエラーがあります。 –
あなたのコードには約束はありません。 – blackmiaool
私はここに多くのことが間違っているが、私の目標を達成する方法を知っていますか?私は約束しているマニュアルやドキュメントを読んでいますが、それを手に入れることはできません:) – Alex