Viblo
  • Posts
  • Questions
  • Discussions
Announcements
No announcement yet.
All Announcements

Trần Quang Cương

@quangcuong

Report
  • Posts
  • Series
  • Questions
  • Answers
  • Clips
  • Followings
  • Followers
  • Tags
  • Reputations
  • Communication

Cho em hỏi làm thế nào để chuyển được biến từ API thành biến trong JS được ạ ??

Trần Quang Cương
Answered Dec 24th, 2020 8:58 AM

Có 2 lệnh console.log(row); mình sẽ gọi nó là log1 và log2. lệnh log1 thì đã ghi ra giá trị bạn muốn, nên mình chỉ sẽ nhắc đến lệnh log2 ở dưới. Vì method fetch trả về 1 Promise, nên phải sử dụng then để đọc tiếp dữ liệu trả về của Promise đó khi nó xử lý xong. (có cách khác là sử dụng async/await). Theo như code của bạn, Khi Promise xử lý xong nó sẽ gọi đến function _getData, Khi function _getData được gọi nó gán được giá trị vào biến row đúng mục đích của bạn rồi đấy, nhưng tiếc rằng lệnh log2 lại được gọi trước khi Promise được xử lý xong (lúc đó hàm _getData chưa được gọi và chưa làm thay đổi biến row) nên tất nhiên nó sẽ ghi ra giá trị là undefine.

Giải quyết vấn đề này có nhiều cách.

1. Xử lý tiếp logic ngay trong function _getData (không khuyến khích)

function _getData(data){
    row = parseInt(data.length / colPerRow);
    //code
}

2. Tiếp tục dùng then để xử lý tiếp.

fetch(uri)
    .then(response => response.json())
    .then(data => _getData(data))
    .then(() => doSomeThing())
    .catch(error => console.error('Unable ...', error));

Nhưng, sử dụng then nhiều thì code sẽ rất rối.

3. Xử dụng async/await (khuyến khích)

let data = await fetch(uri).then(response => response.json());
row = data.length/colPerRow;
//code
0

Làm thế nào để truyền một Object từ View này sang View khác bằng Javascript trong ASP.NET CORE ?

Trần Quang Cương
Answered Dec 24th, 2020 8:17 AM

Bạn có thể sử dụng window.localStorage để lưu nó ngay client bằng cách

localStorage.setItem('key', obj);

Ở view khác bạn truy xuất bằng cách

var obj = localStorage.getItem('key');

Tham khảo

0

How to disable dropdown option el-select ?

Trần Quang Cương
Answered Nov 20th, 2020 9:27 AM

Bạn đặt thêm id hoặc ref cho select đó và cài đặt xử lý event keydown lúc mounted, nếu event.keyCode = 13 (enter) thì bạn stopPropagation event đó đi.

Ví dụ: mounted: document.getElementById('my-select').addEventListener('keydown',(e)=>{ if(e.keyCode == 13){ e.stopPropagation() } })

0

Toán tử php

Trần Quang Cương
Answered Nov 19th, 2020 2:28 AM

bạn tìm hiểu "Ký pháp Ba Lan/ Ba Lan đảo" nhé, Chuyển công thức thường về ký pháp Ba Lan Đảo rồi thay giá trị để tính ra kết quả.

0

Total post views

0

Reputations

6

Following tags

0

Following users

2

Followers

0

Posts

0

Clips

0

Total questions

0

Total answers

4

Organization


Have no organizations yet.

Posts tendency


Resources

  • Posts
  • Organizations
  • Questions
  • Tags
  • Videos
  • Authors
  • Discussions
  • Recommend System
  • Tools
  • Machine Learning
  • System Status

Services

  • Viblo CV Viblo Code
  • Viblo CV Viblo CV
  • Viblo CTF Viblo CTF
  • Viblo Learning Viblo Learning

Mobile App

Get it on Google Play Download on the App Store
QR code

Links

  • Atom Icon

© 2021 Viblo. All rights reserved.

  • About Us
  • Feedback
  • Help
  • FAQs
  • RSS
  • Terms
  • DMCA.com Protection Status